Practical উদাহরণ: Event-driven Programming

Java Technologies - জাভা ইউটিল.প্যাকেজ (Java.util Package) - Observer এবং Observable ক্লাস
241

Event-driven Programming (EDP) হল এমন একটি প্রোগ্রামিং প্যারাডাইম যেখানে অ্যাপ্লিকেশনটির প্রবাহ ব্যবহারকারীর events (যেমন, ক্লিক, টাইপিং, স্ক্রলিং ইত্যাদি) বা অন্যান্য trigger এর দ্বারা নিয়ন্ত্রিত হয়। এই ধরনের প্রোগ্রামিংয়ে, বিভিন্ন listeners বা handlers নির্দিষ্ট ইভেন্টগুলিকে হ্যান্ডল করে অ্যাপ্লিকেশনটি পরিচালনা করে।

Java-তে Event-driven programming সাধারণত GUI (Graphical User Interface) অ্যাপ্লিকেশনগুলিতে ব্যবহৃত হয়, যেখানে ব্যবহারকারীর ক্রিয়াগুলির প্রতিক্রিয়া হিসেবে বিভিন্ন ইভেন্ট trigger হয়। Java Swing API, JavaFX ইত্যাদি ইভেন্ট-চালিত প্রোগ্রামিংয়ের জন্য ব্যবহার করা হয়।

এখানে আমরা java.util প্যাকেজের Properties ক্লাস এবং EventListener ব্যবহারের মাধ্যমে একটি সাধারন Event-driven Programming উদাহরণ দেখব।


উদাহরণ: Event-driven Programming in Java

ধরা যাক, আমাদের একটি GUI অ্যাপ্লিকেশন তৈরি করতে হবে যেখানে একটি বোতাম ক্লিক করলে একটি প্রোপার্টি ফাইল থেকে কনফিগারেশন লোড হবে এবং সেই কনফিগারেশনটি GUI এ প্রদর্শিত হবে।

প্রয়োজন:

  1. একটি বোতাম ক্লিক করলে Properties ফাইল থেকে কনফিগারেশন লোড হবে।
  2. কনফিগারেশনটি GUI এর একটি label-এ প্রদর্শিত হবে।

Steps:

  1. Properties ফাইল তৈরি করা।
  2. Swing দিয়ে একটি GUI তৈরি করা।
  3. Event Handling এর মাধ্যমে Properties ফাইল থেকে কনফিগারেশন লোড করা এবং GUI-তে তা প্রদর্শন করা।

Properties ফাইল: config.properties

username=admin
password=12345
server=localhost

GUI কোড:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.Properties;
import java.io.FileInputStream;
import java.io.IOException;

public class EventDrivenExample extends JFrame implements ActionListener {
    private JButton loadButton;
    private JLabel configLabel;

    public EventDrivenExample() {
        // GUI সৃষ্টির জন্য সেটিংস
        setTitle("Event-driven Programming Example");
        setSize(300, 200);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // বোতাম এবং লেবেল তৈরি
        loadButton = new JButton("Load Config");
        configLabel = new JLabel("Config will appear here");

        // বোতাম ক্লিক ইভেন্ট হ্যান্ডলার সংযোগ
        loadButton.addActionListener(this);

        // Layout সেটআপ
        setLayout(new FlowLayout());
        add(loadButton);
        add(configLabel);
    }

    // ActionListener এর মাধ্যমে বোতাম ক্লিকের পর কনফিগারেশন লোড হবে
    @Override
    public void actionPerformed(ActionEvent e) {
        // Properties ফাইল থেকে কনফিগারেশন লোড করা
        Properties properties = new Properties();
        try (FileInputStream input = new FileInputStream("config.properties")) {
            properties.load(input);
            
            // কনফিগারেশন লেবেলে প্রদর্শন করা
            String configText = "<html>Username: " + properties.getProperty("username") +
                                 "<br>Password: " + properties.getProperty("password") +
                                 "<br>Server: " + properties.getProperty("server") + "</html>";
            configLabel.setText(configText);
        } catch (IOException ex) {
            configLabel.setText("Error loading config!");
        }
    }

    public static void main(String[] args) {
        // GUI তৈরি এবং প্রদর্শন
        EventDrivenExample frame = new EventDrivenExample();
        frame.setVisible(true);
    }
}

ব্যাখ্যা:

  1. JButton ব্যবহারকারীর বোতাম ক্লিকের জন্য তৈরি করা হয়েছে। যখন ব্যবহারকারী বোতামটি ক্লিক করবে, actionPerformed() মেথডটি কল হবে।
  2. Properties ক্লাস ব্যবহার করে একটি প্রোপার্টি ফাইল থেকে কনফিগারেশন লোড করা হয়। প্রোপার্টি ফাইলটি config.properties নামে তৈরি করা হয়েছে।
  3. যখন কনফিগারেশন লোড হয়ে যাবে, JLabel এর মধ্যে কনফিগারেশন তথ্য প্রদর্শিত হবে।

Output:

  1. প্রথমে GUI এর মধ্যে একটি বোতাম এবং একটি লেবেল থাকবে।
  2. যখন ব্যবহারকারী "Load Config" বোতামটি ক্লিক করবে, তখন config.properties ফাইল থেকে তথ্য লোড হয়ে JLabel এ প্রদর্শিত হবে।

Event-Driven Programming এর সুবিধা:

  1. User Interaction: ব্যবহারকারীর ইন্টারঅ্যাকশন দ্বারা অ্যাপ্লিকেশনটির প্রবাহ নিয়ন্ত্রিত হয়, যা অ্যাপ্লিকেশনটিকে খুবই ডাইনামিক এবং ইউজার-ফ্রেন্ডলি করে তোলে।
  2. Real-time Responses: ইভেন্ট-চালিত প্রোগ্রামিং ব্যবহার করে অ্যাপ্লিকেশনগুলো তাত্ক্ষণিক প্রতিক্রিয়া জানাতে সক্ষম হয়, যেমন button click, mouse movement, keyboard input, ইত্যাদি।
  3. Modular Design: ইভেন্ট-চালিত প্রোগ্রামিং প্যাটার্ন ব্যবহার করলে অ্যাপ্লিকেশনটির বিভিন্ন অংশ স্বাধীনভাবে কাজ করতে পারে এবং একে অপরের সাথে ইন্টারঅ্যাক্ট করতে পারে।

এখানে আমরা Event-driven programming প্যাটার্নে একটি Swing GUI অ্যাপ্লিকেশন তৈরি করেছি, যেখানে একটি বোতাম ক্লিক করার মাধ্যমে Properties ফাইল থেকে কনফিগারেশন লোড করে তা GUI তে প্রদর্শিত হয়। এই ধরনের প্রোগ্রামিং সাধারণত ব্যবহারকারী ইন্টারঅ্যাকশন ভিত্তিক অ্যাপ্লিকেশন তৈরি করতে ব্যবহৃত হয়। Java Swing, AWT, অথবা JavaFX এর মতো ফ্রেমওয়ার্কগুলোর মাধ্যমে ইভেন্ট-চালিত অ্যাপ্লিকেশন তৈরি করা সম্ভব।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...